﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using transportsystem.DTO;
using transportsystem.BUS;

namespace transportsystem
{
    public partial class frmLoaiXe : Form
    {
        DataTable dt;
        bool hideControls = true;
        int iIndex = 0;
        bool addNew = false;

        void HideAddNew(bool value)
        {
            if (value == true)
                pnlAddNew.Visible = false;
            else
                pnlAddNew.Visible = true;
        }

        public void SetDataGridTitle()
        {
            string[] a = new string[3] { "Mã loại", "Tên loại", "Mô tả" };

            for (int i = 0; i < a.Count(); i++)
                dgv.Columns[i].HeaderText = a[i];
        }
        public void SetDataGridTitle2()
        {
            string[] a = new string[3] { "Mã loại", "Tên loại", "Mô tả" };

            for (int i = 0; i < a.Count(); i++)
                dgv.Columns[i].HeaderText = a[i];
        }
        public void SetValueToControls()
        {
            if (dt.Rows.Count > 0)
            {
                txtMaLoaiXe.Text = dt.Rows[iIndex]["maloaixe"].ToString().Trim();
                txtTenLoai.Text = dt.Rows[iIndex]["tenloaixe"].ToString().Trim();
                rtbMoTa.Text = dt.Rows[iIndex]["mota"].ToString().Trim();

                lblCount.Text = "Hiện có " + dgv.Rows.Count.ToString() + " loại xe";
            }
        }

        public void AddNewPrepair()
        {
            txtMaLoaiXe.Text = "";
            txtTenLoai.Text = "";
            rtbMoTa.Text = "";

            addNew = true;
            txtTenLoai.Focus();
        }

        public bool CheckControls()
        {
            bool ok = true;
            if (txtTenLoai.Text == "")
            {
                MessageBox.Show("Chưa điền biển số cho xe!");
                ok = false;
            }
            return ok;
        }

        public void WriteData()
        {
            if (CheckControls() == true)
            {
                LoaiXe x = new LoaiXe();

                //Khởi tạo và gán dữ liệu
                if (addNew == false)
                    x.Maloaixe = int.Parse(txtMaLoaiXe.Text);
                x.Tenloaixe = txtTenLoai.Text.Trim();
                x.Mota = rtbMoTa.Text.Trim();
                bool i = LoaiXeBUS.updateLoaiXe(x);
                string msg = "";
                if (i == true)
                {
                    if (addNew == true)
                        msg = "Thêm thành công";
                    else
                        msg = "Sửa thành công";
                }
                else
                {
                    if (addNew == true)
                        msg = "Thêm thất bại";
                    else
                        msg = "Sửa thất bại";
                }
                MessageBox.Show(msg);

                LoadData();
                addNew = false;
            }
        }

        public void LoadData()
        {
            HideAddNew(hideControls);
            dt = LoaiXeBUS.getLoaiXeList();
            if (dt != null && dt.Rows.Count > 0)
                dgv.DataSource = dt;
            iIndex = 0;
            SetDataGridTitle();
            SetValueToControls();
        }

        public frmLoaiXe()
        {
            InitializeComponent();
        }

        private void frmLoaiXe_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void chkHideControls_CheckedChanged(object sender, EventArgs e)
        {
            hideControls = !hideControls;
            HideAddNew(hideControls);
        }

        private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            addNew = false;
            iIndex = e.RowIndex;
            SetValueToControls();
        }

        private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            addNew = false;
            iIndex = e.RowIndex;
            SetValueToControls();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            chkHideControls.Checked = true;
            hideControls = !chkHideControls.Checked;
            HideAddNew(hideControls);
            AddNewPrepair();
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            WriteData();
        }

        private void btnRemove_Click(object sender, EventArgs e)
        {
            if (addNew == false)
            {
                LoaiXe x = new LoaiXe();
                x.Maloaixe = int.Parse(txtMaLoaiXe.Text.Trim());
                bool i = LoaiXeBUS.deleteLoaiXe(x);
                string msg = "";
                if (i == true)
                    msg = "Xóa thành công";
                else
                    msg = "Xóa thất bại";
                MessageBox.Show(msg);
                LoadData();
            }
        }

        private void btSearch_Click(object sender, EventArgs e)
        {
             string[] a = new string[3] { "Mã loại", "Tên loại", "Mô tả" };

            

            string tenloaixe = txtTimKiem.Text;
            DataSet ds = LoaiXeBUS.traCuuLoaiXeTheoTen(tenloaixe);
            DataTable dt1 = ds.Tables[0];
            DataTable dt2 = ds.Tables[1];
            if (dt1 != null && dt1.Rows.Count > 0)
            {
                dgv.DataSource = dt1;
            }
            if (dt2 != null && dt2.Rows.Count > 0)
            {
                dgvLoaiXe.DataSource = dt2;
            }
            SetDataGridTitle();
            SetDataGridTitle2();
        }

    }
}
